Software-defined networking (SDN) is a network architecture that aims at decoupling control plane functions from data plane functions such that separate apparatuses may be utilized for different functions. In the SDN architecture, network intelligence and states are logically centralized, and the underlying network infrastructure is abstracted from the applications. As a result, networking may be simplified and new applications become feasible. For example, network virtualization can be accomplished by implementing it in a software application where the control plane is separated from the data plane. Also, a network administrator of a SDN system may have programmable central control of network traffic without requiring physical access to the system's hardware devices. With these benefits, SDN architecture based systems (referred to as SDN systems or SDN networks exchangeably herein below) are gaining popularity among carriers and enterprises.
For implementing SDN, the Open Networking Foundation (ONF), an industrial consortium focusing on commercializing SDN and its underlying technologies, has defined a set of open commands, functions, and protocols. The defined protocol suites are known as the OpenFlow (OF) protocol. In the OpenFlow protocol, packets of traffic flows are forwarded through one or more flow tables in an OpenFlow switch (a network element). Packets are matched against flow tables for forwarding decisions. In the process, a packet is matched to match fields of flow table entries of a flow table. The match can be an exact match, where a value extracted from the packet needs to be the same value of a corresponding match field to make a match; the match can also be a wildcard match where the value extracted from the packet can be any value to make a match; or the match can be a range match where the value extracted from the packet needs to be within a defined bounded range of values to make a match.
In networking, a port is an application-specific or process-specific software construct serving as a communications endpoint in a network device. The purpose of ports is to uniquely identify different applications or processes running on a single network device so that these applications and processes may share a single physical connection (e.g., network links between network devices). A port is typically associated with an Internet Protocol (IP) address, as well as the type of protocol used for Open System Interconnection (OSI) in layers 4-7, where the type of protocol may be the Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and etc. In the OpenFlow protocol, packet matching for a port value is defined as an exact match only. However, in some applications, a range match for the port value is more advantageous.